package com.res.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import com.res.entity.Static;

public interface StaticRepository extends JpaRepository<Static, Integer>,JpaSpecificationExecutor<Static>{
        //资源接口
	/**
	 * 查询统计表的所有数据根据下面这个sql查询
	 * 用这个原生sql的原因就是等会在StaticController里面判断使用
	 * 因为StaticController中的count也是这个语句查的 这样不会出现下标越界的情况
	 * 用s.*就是为了得到static表中的所有数据，不然等会StaticController判断可能会有问题
	 * @return
	 */
	@Query(value=" select s.* from register re INNER JOIN computer c \r\n" + 
			"on re.cid=c.cid INNER JOIN readroom r on r.rid=c.cid\r\n" + 
			"inner join static s on s.rid=r.rid\r\n" + 
			"GROUP BY re.cid\r\n" + 
			" ",nativeQuery=true)
	List<Static>all();
	/**
	 * 用原生sql写修改static中的机房使用次数比较方便
	 * @param num
	 * @param sid
	 * @return
	 */
	@Modifying
	@Query(value=" update static set pnum=?1 where sid=?2 ",nativeQuery=true)
	Integer UpdatePnum(Integer num,Integer sid);
}
